#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const cac_1 = tslib_1.__importDefault(require("cac"));
const generateIconfont_1 = require("./generateIconfont");
const restoreSvgs_1 = require("./restoreSvgs");
const addSvgs_1 = require("./addSvgs");
const pickSvgs_1 = require("./pickSvgs");
const removeSvgs_1 = require("./removeSvgs");
const generateHtml_1 = require("./generateHtml");
const cli = (0, cac_1.default)();
cli
    .command("")
    .option("--id <id>", "父元素id，默认与文件名同名，防止同一个iconfont文件重复创建父元素")
    .option("-c,--clazz", "输出React Class组件，默认是函数组件")
    .option("-d,--deep", "是否递归目录")
    .option("-p,--pure", "是否去掉颜色")
    .option("-r", "是否还原svg")
    .option("--restore <restore>", "只恢复指定的svg文件，不修改原iconfont.js文件。指定要恢复的symbols名称，以逗号隔开")
    .option("--add <add>", "添加svg到output指定的iconfont文件中，指定要添加的svg所在的目录，如果有重复名称的svg会在在名称中添加数字")
    .option("--remove <add>", "指定symbols从iconfont文件中移除，指定要移除的symbols名称，以逗号隔开")
    .option("--pick <add>", "指定symbols从iconfont文件中恢复成svg文件并将对应的symbols从文件中删除，指定要移除的symbols名称，以逗号隔开")
    .option("--html", "根据指定的 iconfont.js 生成模版 html")
    .option("-i,--input <input>", "输入路径 默认当前目录")
    .option("-o,--output <output>", "输出路径 默认dist")
    .action(function (options) {
    handlerOptions(options);
});
cli.help();
cli.version("1.1.1");
cli.parse();
function handlerOptions(options) {
    const { r, restore, add, pick, remove, i, input, o, output, d, deep, p, pure, c, clazz, html, } = options;
    Object.assign(options, {
        isPure: p || pure || false,
        isDeep: d || deep || false,
        isClazz: c || clazz || false,
        inputValue: i || input || "",
        outputValue: o || output,
    });
    if (!options.inputValue) {
        throw new Error("there is no input!");
    }
    // 恢复svg
    if (r || restore)
        (0, restoreSvgs_1.restoreSvgs)(options);
    // 添加svg
    else if (add)
        (0, addSvgs_1.addSvgs)(options);
    // 提取svg
    else if (pick)
        (0, pickSvgs_1.pickSvgs)(options);
    // 删除svg
    else if (remove)
        (0, removeSvgs_1.removeSvgs)(options);
    // 生成html模板
    else if (html)
        (0, generateHtml_1.generateHtml)(options);
    // 生成iconfont
    else
        (0, generateIconfont_1.generateIconfont)(options);
}
